import numpy as np
import pandas as pd
import sklearn.metrics
def evaluation(y, yhat):
= np.array(y).reshape(-1)
y = np.array(yhat).reshape(-1)
yhat_prob = np.array(yhat).reshape(-1)>0.5
yhat_01 = sklearn.metrics.accuracy_score(y,yhat_01)
acc = sklearn.metrics.precision_score(y,yhat_01)
pre = sklearn.metrics.recall_score(y,yhat_01)
rec = sklearn.metrics.f1_score(y,yhat_01)
f1 = sklearn.metrics.roc_auc_score(y,yhat_prob)
auc return {'acc':acc,'pre':pre,'rec':rec,'f1':f1,'auc':auc}
= [0,0,0,1]
y = [0,0,0,0.1] yhat
evaluation(y,yhat)
/home/coco/anaconda3/envs/pyod/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1497: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.
_warn_prf(average, modifier, f"{metric.capitalize()} is", len(result))
{'acc': 0.75, 'pre': 0.0, 'rec': 0.0, 'f1': 0.0, 'auc': 1.0}